package com.xiyu.service.convert.unit;

import com.xiyu.service.vo.unit.unit.UnitGetGroupCategoryInfoOutput;
import com.xiyu.service.vo.unit.unit.UnitSimpleListOutput;
import com.xiyu.service.vo.unit.unit.UnitSingleGetOutput;
import com.xiyu.service.vo.unit.unit.UnitUpdateInput;
import com.xiyu.service.vo.unit.unit.UnitCreateInput;
import com.xiyu.service.vo.unit.unit.UnitPageQueryOutput;
import com.xiyu.service.model.unit.unit.UnitUnit;
import java.util.*;

import org.babyfish.jimmer.sql.ast.tuple.Tuple2;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.factory.Mappers;

/**
 * 单位管理 Convert
 */
@Mapper
public interface UnitConvert {
    UnitConvert INSTANCE = Mappers.getMapper(UnitConvert.class);


    List<UnitPageQueryOutput> pageQueryOutputConvert(List<UnitUnit> output);

    UnitUnit createInputConvert(UnitCreateInput input);

    UnitUnit updateInputConvert(UnitUpdateInput input);

    UnitSingleGetOutput singleGetOutputConvert(UnitUnit output);

    List<UnitSimpleListOutput> simpleListOutputConvert(List<UnitUnit> output);

    List<UnitGetGroupCategoryInfoOutput> getGroupCategoryInfoOutputConvent(List<Tuple2<Integer, Long>> output);

    @Mapping(source = "_1", target = "institutionalCategory")
    @Mapping(source = "_2", target = "count")
    UnitGetGroupCategoryInfoOutput getGroupCategoryInfoOutputConvent(Tuple2<Integer, Long> output);

}
